﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http;
using Registro.Compras.Api.Models;
using Registro.Compras.Data.Business;
using Registro.Compras.Data.Entities;
using System.Web.Http.Cors;

namespace Registro.Compras.Api.Controllers
{
    [EnableCors(origins: "*", headers: "*", methods: "*")]
    public class EncabezadoController : ApiController
    {
        // GET api/<controller>
        public IEnumerable<EncabezadoModel> Get()
        {
            //return new string[] { "value1", "value2" };
            return EncabezadoBusiness.GetListByFilter("").Select(
                t => new EncabezadoModel
                {
                    Id = t.Id,
                    Periodo = t.Periodo,
                    Ruc = t.Ruc,
                    Razon_Social = t.Razon_Social,
                    Estado = t.Estado,

                });
        }

        // GET api/<controller>/5
        public EncabezadoModel Get(int id)
        {
            Encabezado t = EncabezadoBusiness.GetById(id);
            return new EncabezadoModel
            {
                Id = t.Id,
                Periodo = t.Periodo,
                Ruc = t.Ruc,
                Razon_Social = t.Razon_Social,
                Estado = t.Estado,
            };
        }


        // POST api/<controller>
        public EncabezadoModel Post([FromBody]EncabezadoModel model)
        {
            Encabezado t = EncabezadoBusiness.Create(new Encabezado
            {
                Periodo = model.Periodo,
                Ruc = model.Ruc,
                Razon_Social = model.Razon_Social,
                Estado = model.Estado,
            });
            return new EncabezadoModel
            {
                Id = t.Id,
                Periodo = t.Periodo,
                Ruc = t.Ruc,
                Razon_Social = t.Razon_Social,
                Estado = t.Estado,
            };
        }

        // PUT api/<controller>/5
        public EncabezadoModel Put(int id, [FromBody]EncabezadoModel model)
        {
            Encabezado t = EncabezadoBusiness.Update(new Encabezado
            {
                Id = id,
                Periodo = model.Periodo,
                Ruc = model.Ruc,
                Razon_Social = model.Razon_Social,
                Estado = model.Estado,
            });
            return new EncabezadoModel
            {
                Id = t.Id,
                Periodo = t.Periodo,
                Ruc = t.Ruc,
                Razon_Social = t.Razon_Social,
                Estado = t.Estado,
            };
        }

        // DELETE api/<controller>/5
        public void Delete(int id)
        {
            EncabezadoBusiness.Delete(id);
        }
    }
}